account.riversync.com — where every tenant manages itself: customers and partners run their organization; the riversync tenant manages just its users. One sign-in surface serves all three.
| Tenant type | What the Account portal manages | Navigation |
|---|---|---|
| Customer | The organization — profile, people, structure, partners, money | Overview · Users · Departments · Sites · Roles · Permissions · Partners · Billing · Invoices · Audit |
| Partner | Same organization surface (a partner org is also a company; Nera is also a customer) | Mirrors the customer view; partner-specific pages reserved |
| riversync | Its own users only — no organization (master TEN-3, AUTH-4); user management is the standard surface set | Overview · Users · Roles · Permissions |
Customer organization management covers: company profile/branding/security, users with per-application roles, departments, sites (regions → sites), roles, permissions, partners, billing (THB), invoices and the audit log.
Roles and Permissions are separate surfaces. Roles defines the role set (Owner fixed-full, Administrator, Editor, Viewer + custom roles). Permissions is a per-application matrix with region/site scope overrides; gated apps (Partners, Pipeline, Admin) show locked with the reason.
Partners surface stays light: the list shows organization, partner tier and status only. Each partner opens a detail page — Devices (every covered device with its own agreement, tier, renewal and move-at-renewal action), Access (scope controls, effective immediately), Activity (the partner's audited actions). A partner-tenant org viewing its own Partners page never sees itself in the list (master PRT-8). Master PRT-1…8 govern the model.
riversync-tenant view: an Overview landing (headcount, role distribution, console shortcuts) plus the standard Users, Roles and Permissions surfaces — the same user management every tenant gets (master AUTH-4…7). The five default roles (admin · support · sales · accounting · engineer) are ordinary configurable roles; admin is fixed-full. No org pages whatsoever. Each tenant type has a default overview page — it is the landing target whenever a destination page doesn't exist for that tenant.
Sign-in offers Google · Microsoft · LinkedIn · email & password, org-level Entra ID SSO, and an account chooser when one email holds accounts in several tenants (master ID-2/3). Unverified email locks org surfaces with an explain-and-unlock state.
My Account is shared by every tenant type — profile, security, sessions, notifications.
DS components only — including the branded dropdown for every select; no native OS menus.
The Account app serves three tenant types, each with its own sidebar model, and within each tenant every role sees only the menu items its permission set reaches. The sidebar is built from the shell nav model (NAV / STAFF_NAV); visibility is resolved by the role-access map (ROLE_ACCESS, Federation §1 layers 3–4). A menu item a role cannot reach is hidden from the sidebar and blocked on a direct visit (typed URL, bookmark, stale link) — it is not merely hidden.
Before role gating inside an app, the tenant type decides which of the platform's six apps appear in the product switcher at all (master AUTH-2; Application.Gating = open · partner · riversync).
| App | Customer | Partner | riversync |
|---|---|---|---|
| Account | Open | Open | Open |
| Portal | Open | — | — |
| Partners | — | Open | — |
| Pipeline | — | — | Open |
| Admin | — | — | Open |
| Field | — | — | Open |
Partner members service devices in Partners, not Portal; riversync staff monitor every customer's devices in the Operations console (the staff side of Portal). Field is reached at field.riversync.com and is not in the switcher — engineer-gated (see SPEC-APP-FLD).
| Menu item | Owner | Admin | Editor | Viewer |
|---|---|---|---|---|
| Organization | ||||
| Overview | Full | Full | Read | Read |
| Users | Full | Full | Read | — |
| Departments | Full | Full | Read | Read |
| Sites | Full | Full | Read | Read |
| Roles | Full | — | — | — |
| Permissions | Full | — | — | — |
| Partners | Full | Full | Read | — |
| Billing | Full | — | — | — |
| Invoices | Full | — | — | — |
| Account | ||||
| My Account | Full | Full | Full | Full |
| Audit Log | Read | Read | — | — |
Billing, Invoices, Roles and Permissions are Owner-only in the prototype. My Account is ungoverned (FED-4) — always reachable for every role.
A partner org is also a company, so it gets the same sidebar as a customer (Nera is also a customer). Roles differ by partner subtype: a reseller has Administrator · Service coordinator · Sales; a distributor has Administrator · Channel manager · Sales. Access is structurally identical between the two subtypes, so the coordinator and manager share a column below.
| Menu item | Administrator | Coordinator / Manager | Sales |
|---|---|---|---|
| Organization | |||
| Overview | Full | Full | Read |
| Users | Full | Full | — |
| Departments | Full | Full | — |
| Sites | Full | Full | — |
| Roles | Full | — | — |
| Permissions | Full | — | — |
| Partners | Full | — | — |
| Billing | Full | — | — |
| Invoices | Full | — | — |
| Account | |||
| My Account | Full | Full | Full |
| Audit Log | Read | Read | — |
The partner Sales role works mainly in the Partners app (deal registration), so in Account it sees only the Overview. On the Partners menu item, a partner org never sees itself in its own partner list (master PRT-8) — a content rule, not a visibility one.
| Menu item | Admin | Support | Sales | Acct. | Engineer |
|---|---|---|---|---|---|
| Organization | |||||
| Overview | Full | Read | Read | Read | Read |
| Users | Full | Read | — | — | — |
| Roles | Full | — | — | — | — |
| Permissions | Full | — | — | — | — |
| Account | |||||
| My Account | Full | Full | Full | Full | Full |
| Audit Log | Read | Read | — | — | — |
Only admin manages riversync users, roles and permissions; support additionally reaches Users (read) and the Audit Log. Sales, accounting and engineer land on the Overview and do their work in the Pipeline, Admin and Field apps respectively.
The working pages in this project, named by tenant-type prefix. Use this to cross-check the PRD against what's built.
| Page | Covers |
|---|---|
| Customer Organization | ACC-1 — profile, branding, security, regions |
| Customer Users · User Detail | ACC-1 — members, per-app roles, application access |
| Customer Departments · Locations | ACC-1 — structure and sites |
| Customer Roles · Permissions | ACC-2 — role set and per-app matrix |
| Customer Partners · Partner Detail | ACC-3 — partner list, devices · access · activity |
| Customer Billing · Invoices · Audit | ACC-1 — money and history |
| RiverSync Overview · Users · Roles · Permissions | ACC-4 — riversync-tenant view |
| Sign In · Account | ACC-5/6 — shared surfaces |
| Version | Date | Changes |
|---|---|---|
| 0.1 | 12 Jun 2026 | First extraction from the master PRD + prototypes: three tenant views, roles/permissions split, partners surface, staff view, sign-in |
| 0.2 | 12 Jun 2026 | Staff Overview landing page; tenant switch lands on the same page when it exists, else the tenant's overview |
| 0.3 | 12 Jun 2026 | Partners list excludes the viewing org itself (master PRT-8) |
| 0.4 | 13 Jun 2026 | riversync-tenant users are managed like any tenant's (master v0.13) — ACC-4 reworked: standard Users · Roles · Permissions surfaces, ordinary single-role accounts, no multi-role mechanic; prototypes reworded to match |
| 0.5 | 15 Jun 2026 | Site Locations menu → Sites. The customer nav item, page title, crumbs and the navigation list rename to Sites; ACC-1 wording follows. Backing entity SiteLocation → OrganizationSite (SPEC-ERD v0.16, spelled-out naming). No requirement-structure changes. |
| 0.6 | 16 Jun 2026 | Structure entity OrganizationUnit → OrganizationDepartment (SPEC-ERD v0.17, spelled-out domain-context naming) — aligns the data model to the Account Departments surface (ACC-1). The EntityType catalog still types each node (company · division · department · team). No requirement-structure changes. |
| 0.7 | 27 Jun 2026 | Navigation & menu visibility (new §3). Documents the Account sidebar for all three tenant types and a role × menu-item visibility matrix per tenant (customer · partner · riversync), grounded in the shell nav model and ROLE_ACCESS map. Adds the app-entitlement (product-switcher) matrix, the Full / Read / hidden / email-gated states, and the rule that an unreachable item is blocked on direct visit, not just hidden. Prototype index, open questions and revision history renumbered §4–§6. No requirement-structure changes. |